Internet protocol (IP) forwarding works by forwarding remotely-destined IP packets to a router that has a (generally, the best) path to the destination. The purpose of routing is to enable the choice of the best possible next-hop. The choice of next-hop can be dynamically determined by using a routing protocol or it can be statically configured.
In cases where a next-hop for a certain destination is statically configured, the unavailability of the next-hop causes the destination to become unreachable. To alleviate this problem, multiple independent devices can be used that can redundantly serve as next-hops for a given destination without having to make configuration changes on the neighbors. So, if a redundant device is unavailable, then another redundant device may take its place. This per-interface fail-over is achieved by failing-over a virtual IP address (hereinafter VIP or virtual IP), which serves as the next-hop, from one device to another. The fail-over of the VIP on a certain logical channel between the redundant devices may be achieved by running a high-availability (HA) protocol on the logical channel to make a decision about which of the redundant devices owns the VIP.
It is typical to create multiple logical interfaces on a given physical interface. This allows sharing of the same physical medium for different logical channels of traffic. A group of redundant devices may have different VIPs assigned to multiple logical interfaces. If so, an HA protocol is run on each of these logical interfaces.